Management of video playback speed based on objects of interest in the video data

ABSTRACT

Systems, methods, and software described herein manage the playback speed of video data based on processing objects in the video data. In one example, a video processing service obtains video data from a video source and identifies objects of interest in the video data. The video processing service further determines complexity in frames of the video data related to the objects of interest and updates playback speeds for segments of the video data based on the complexity of the frames.

BACKGROUND

Video data can be generated in a variety of different formats to supportvarious different applications. These different formats may includedifferent resolutions, different frame rates, different color gradients,or some other different formatting. As the video data is generated, thedata may be imported to a computing device or devices to supportediting, surveillance, or other operations in association with the videodata. For example, video data may be used by an organization to providesurveillance on one or more properties.

However, as video data is increased for an operation, difficulties canarise in identifying objects of interest in the video data andeffectively presenting the video data to a user. In particular, inprocessing the video data, a user may select objects of interest, thevideo processing system may identify the objects in the video data andmay provide the video data with the objects of interest to the user.However, based on the number of objects and the length of the videodata, a user may have difficulty in processing or understanding theinformation in the video data.

OVERVIEW

Provided herein are systems, methods, and software to manage videoplayback speed based on objects of interest in video data. In oneexample, a video processing system obtains video data from a videosource and identifies objects of interest in the video data. The videoprocessing system further determines complexity ratings in frames of thevideo data for the objects of interest and updates playback speeds ofthe video data based on the complexity ratings, wherein differentsegments of the video data are allocated a different playback speed.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the disclosure can be better understood with referenceto the following drawings. While several implementations are describedin connection with these drawings, the disclosure is not limited to theimplementations disclosed herein. On the contrary, the intent is tocover all alternatives, modifications, and equivalents.

FIG. 1 illustrates a computing environment to manage video playbackspeed according to an implementation.

FIG. 2 illustrates an operation of a video processing service to managevideo playback speed according to an implementation.

FIG. 3 illustrates an operational scenario of modifying video playbackspeed according to an implementation.

FIG. 4 illustrates an operational scenario of using historicalinformation and complexity to manage video playback speed according toan implementation.

FIG. 5 illustrates an operational scenario of using user input to selectobjects of interest and preferences according to an implementation.

FIG. 6 illustrates a computing system to manage video playback speedaccording to an implementation.

DETAILED DESCRIPTION

The various examples disclosed herein provide for managing videoplayback speeds based on complexity associated with segments of thevideo data. In computing environments, a video processing service may beused to obtain video data, process the video data to find relevantobjects in the video data, and present the processed video to a user ofthe video processing service. Here, in addition to identifying objectsof interest in the video data, the video processing service may modifyand change the playback speed associated with different segments of thevideo data to promote understanding of the video data.

In one implementation, the video processing service may obtain orreceive video data from a video source and identify objects of interestin the video data. The video data may be obtained from a camera or avideo storage device, which can include solid state or mechanicalstorage. The objects of interest may be manually selected in the videodata by a user or may be identified using attributes, such as color,shape, object type, or some other attribute provided by a user. Once theobjects are identified, the video processing service may determine acomplexity in frames of the video data related to the objects ofinterest. The complexity may comprise a value that is based on thenumber of objects of interest in the frame, the movement of the objectsof interest in the frame, the proximity of the objects of interest inthe frame, or some other factor. Once determined, the complexity for theframes may be used to determine a playback speed for different segmentsin the video data. For example, a first segment with frames that aremore complex may be assigned a playback speed of a first rate, while asecond segment with frames that are less complex may be assigned aplayback speed of a second rate. Advantageously, segments that are lesscomplex or can be quickly processed by a user may be provided at anincreased speed, while segments that are more complex can be provided ata decreased speed to permit further processing by the viewing user.

In some implementations, the video processing service may permit theuser to provide feedback to video data. In particular, a first versionof the video data may be provided to the user with one or more playbackspeeds. Once provided, the user may indicate objects of interest,objects to be removed, or some other information in association with theobjects or the video data and the video processing service may updatethe video data based on the feedback. The update may be used to removeobjects of interest, playback speeds, or some other information relatedto the display of the video data to the user. The feedback operation maybe repeated as the user may select and deselect operations of interest,while the video processing service updates the playback speeds andobjects viewable in the video data.

FIG. 1 illustrates a computing environment 100 to manage video playbackspeed according to an implementation. Computing environment 100 includesvideo source 120, video data (video) 130-131, video processing service124, user interface 128, and frame 140. Video processing service 124provides operation 200 that is described further in FIG. 2 . Videoprocessing service 124 may execute on one or more desktop computers,server computers, or some other computing element or elements.

In operation, video processing service 124 obtains video data 130 fromvideo source 120. Video source 120 may comprise a video camera or avideo storage system that stores video data on solid state storage, diskdrives, or some other storage device. When the video data is received,video processing service 124 may process the video data to identifyobjects of interest. In some implementations, a user at user interface128 may provide preferences for the video data indicating preferences133 or attributes for identifying objects of interest in the video data.The attributes may include one or more object types, object colors,object shapes, or some other attributes. For example, using frame 140,the user may identify car objects that are white. Once selected, videoprocessing service 124 may perform image processing on the frames toidentify relevant objects in the frames with the requested attributes.

In the present implementation, as the objects are identified in theframes of the video data, video processing service 124 may furtherdetermine or monitor the complexity associated with different portionsof the video data. The complexity determination may be based on thenumber of objects of interest in the frame or frames, may be based onthe speed of the one or more objects in the frame, may be based on theproximity of one or more objects in the frame, or may be based on someother factor. For example, traffic monitoring video data may identifyall cars that are white. When more white cars are in a segment of thevideo data, video processing service 124 may identify the segment asmore complex than a second segment of the video data with less whitecars. Based on the complexity in the various segments of the video data,video processing service 124 may update or modify the playback speedassociated with the various segments of the video data. For example, amore complex portion may be designated a playback speed of 2X, while aless complex portion may be designated a playback speed of 10X. Once theplayback speed is updated for the video data, the video data may beprovided to user interface 128 for display to a user. In some examples,when objects of interest are identified, video processing service 124may further highlight using a box, a pointer, a brighter contrast, orsome other highlighting mechanism the objects of interest.

In some implementations, video processing service 124 may provideadditional processes with respect to the video data. The additionalprocesses may include removing objects that are not of interest to theend user, wherein video processing service 124 may search the video forother types of objects, such as cars that are not the requested color,and remove the objects by replacing them with an expected backgroundfrom another captured frame. In another implementation, user interface128 may permit the user to view the video data using the playback ratesand select one or more objects in the video data that are not relevantto the user. These selected objects may include objects that are notidentified as relevant objects of interest to the user. Once selected,video processing service 124 may update the video data to remove theselected objects from the video data and update the playback speed toreflect the removal of the object. Similarly, the user may manuallyselect objects of interest in the video data and video processingservice 124 may update the playback speed to reflect the manuallyselected objects.

FIG. 2 illustrates an operation 200 of a video processing service tomanage video playback speed according to an implementation. The steps ofoperation 200 are referenced parenthetically in the paragraphs thatfollow with reference to systems and elements of computing environment100 of FIG. 1 .

As depicted, operation 200 includes obtaining (201) video data from avideo source, wherein the video source may comprise a video camera or avideo storage device. The video storage device may comprise one or moresolid state storage devices, storage disks, or some other storagedevice. As the video data is obtained, operation 200 further identifies(201) objects of interest in the video data. In some implementations, auser may select attributes for the objects of interest, wherein theattributes may include one or more object types, one or more objectcolors, or one or more object shapes. For example, a user may select tomonitor all persons in the video data with a green shirt. Once theattributes are selected by the user, video processing service 124 mayprocess the video data to identify objects of interest in the framesthat match the requested attributes.

Once the objects of interest are identified in the video data, operation200 further determines (203) complexity in frames of the video datarelated to the objects of interest. The complexity may be determinedbased on the quantity of objects of interest in the frames, the speed oramount of movement by the objects in the frames, or some othercomplexity factor that could influence a viewer's understanding of theobjects in the frame. As an example, video processing service 124 mayprocess video data 130 from video source 120 to identify vehicles in theframes, such as frame 140. As the number of vehicles increase in aframe, the frame may be labeled as more complex than frames with alesser number of vehicles. In addition to or in place of the number ofobjects in the frame, video processing service 124 may monitor the speedof the objects of interest in the frame or the proximity of the objectsto each other in the frame to determine the complexity for the user inunderstanding what is happening in the video data. The more objects,movement, or proximity of the objects, the more complex the video datamay be to understand.

After determining the complexity associated with the frames in the videodata, operation 200 further updates or modifies (204) the playback speedof the video data based on the complexity, wherein different segments ofthe video data are allocated a different playback speed. Once updated,the video data may be displayed at user interface 128 using the updatedplayback speed. For example, video processing service 124 may identifythat the first five minutes of a ten minute video are less complex thanthe last ten minutes of the video. As a result, video processing service124 may allocate a first playback speed to the first five minutes and asecond playback speed to the second five minutes. In someimplementations, the first playback speed may be faster than the secondplayback speed, permitting the user at user interface 128 to moreclosely analyze the more complex portions of the video. In someexamples, the objects of interest may be highlighted in the video data,such that the user can identify the objects. The objects may behighlighted using an outline, arrows, a different contrast, or someother highlighting mechanism to identify the objects of interest in thevideo data.

In some examples, user interface 128 may permit the user to makemodifications to the video data once it is provided to the user. Thesemodifications may include selecting objects of interest identified in afirst version of the video data to indicate that they are not ofinterest to the user. In response to the selection, video processingservice 124 may reprocess the video data to update the playback speedbased on the removed one or more objects of interest. Similarly, theuser may manually select one or more objects in a first version of thevideo data to be added to the objects of interest. In response to theselection, video processing service 124 may reprocess the video data toupdate the playback speed of the video data to reflect the selections.Video processing service 124 may also perform machine learning, whereinobjects that are manually selected as objects of interest or removedfrom the identified objects of interest may be identified in futurevideo data as relevant or irrelevant to the user.

In some implementations, video processing service 124 may be used toremove objects in the video data that are not identified as objects ofinterest. For example, a user may indicate that objects of interest areall white vehicles. From the user preferences, video processing service124 may identify any vehicle in the video data that is not white andremove the vehicles from the video data by using an estimated backgroundor inserting one or more pixels from a previous frame that did notinclude the vehicle. Using frame 140, if one of the vehicles was notrelevant to preferences 133, video processing service 124 may identifythe pixels occupied by the vehicle and replace at least a portion of thepixels with a previous or succeeding frame (assuming the camera isstationary).

FIG. 3 illustrates an operational scenario 300 of modifying videoplayback speed according to an implementation. Operational scenario 300includes frames 340-341 and processed video data 330.

In operation, video data is obtained by a video processing service todetermine playback rates associated with different portions of thevideo. When the video data is obtained, the video processing system mayidentify objects of interest in the video data, wherein the objects ofinterest may be identified using attributes in some examples. Theseattributes may be defined by a user of the video processing service,wherein the user may define shapes, colors, object types, or otherinformation associated with the objects of interest. Once the attributesare received, the video processing service may process the video data toidentify objects of interest that match the attributes. The user mayalso manually select the objects of interest in one or more frames ofthe video in some examples.

After the objects of interest are identified, the video processingservice may determine how complex the objects of interest are in theframes. The complexity of the frames may be determined based on thequantity of objects, the movement of the objects, the proximity of theobjects, or some other factor. Here, the video processing servicedetermines in frame 340 that two objects of interest are in the frameand that frame should be played at a first playback speed. In contrast,when the video processing service processes frame 341, the videoprocessing service identifies one object of interest and a secondplayback speed for the frame. Once the frames are processed, processedvideo data 330 is generated for display, wherein different segments ofprocessed video data 330 are allocated a different playback speed.Advantageously, when played for a user, processed video data 330 mayprovide a slower playback speed for portions of the video data with morecomplexity, while a faster playback speed may be provided for portionsof the video data with less complexity. In some examples, the complexitymay be measured as a score based on one or more of the aforementionedfactors, wherein the score may correspond to a playback speed for thevideo data.

In some examples, the user interface for the video data, which may belocated on the same device or devices as the video processing service ora client device, may permit the user to provide feedback regarding aprovided video. In particular, the user may manually select or deselectobjects of interest, provide a preference to remove or not make visibleone or more objects in the video data, change the attributes associatedwith the objects of interest, manually change the playback speedassociated with one or more segments of the video data, or provide someother feedback regarding the video. In response to the selections, thevideo processing service may update the video data to support therequest. In some implementations, the update may include updating theplayback speeds associated with one or more segments of the video data,removing the requested objects from the video data, or providing someother operation with respect to the video data. In some examples, thevideo processing service may perform machine learning, wherein theselections from first video data may be used in processing future videodata. For example, if a user indicates that segments with three objectsof interest should be set to a playback speed of 4× instead of 8×, thevideo processing service may store these preferences and enforce thepreferences on the next processing of video data.

Although demonstrated as identifying two different playback speeds forthe video data, it should be understood that any number of playbackspeeds may be identified for a video. Additionally, while beingdemonstrated as using the number of objects to determine complexity andthe corresponding playback speed, the video processing service may useany number of factors in determining the complexity associated with theframes, including the movement of the objects in the frame, theproximity of the objects in the frame, or some other factor.

FIG. 4 illustrates an operational scenario 400 of using historicalinformation and complexity to manage video playback speed according toan implementation. Operational scenario 400 includes frame 410,characteristics 431, and historical information 430.

In operation, video data is received by a video processing system andprocessed to determine playback speeds associated with differentsegments in the video data. Here, frames of video data, such as frame410, are processed to identify complexity characteristics 431 in theframe. The complexity characteristics may include the number of objectsof interest in the frame, the proximity of the objects of interest toother objects, the movement of the objects in the frame, or some othercharacteristic. As the characteristics are identified, the videoprocessing service identifies, at step 1, complexity for the frames andsegments of video based on the characteristics and historicalinformation 430. Historical information 430 may include previousindications of complexity from a user (e.g., complexity preferences)where a user may indicate that a set of characteristics is more complexthan other characteristics. For example, a user may slow the playbackspeed for video from 8× to 4× and historical information 430 may cacheinformation about the segment indicating the types of characteristicsthat can make a segment more complex.

Once the complexity is determined for the frames, the video processingservice may update, at step 2, playback speeds associated with differentportions of the video data. In at least one implementation, the videoprocessing service may allocate a complexity score or value to thedifferent frames in the video data or set of frames in the video data.The complexity value may then be associated with a playback speed forthat segment. For example, a first set of frames representing a firstsegment may be allocated a first complexity value, while a second set offrames representing a second segment may be allocated a secondcomplexity value. The different complexity values may each be associatedwith a different playback speed, resulting in one segment of the videodata being displayed at a first speed, while a second segment of videodata is displayed at a second speed.

Once the playback speeds are determined for the various portions of thevideo data, the video processing service may further display, at step 3,the video data using the updated playback speeds. In someimplementations, the display may occur on the same device that processedthe video data. In other implementations, the video data may bedisplayed as part of a browser or dedicated application on a userdevice, such as a smartphone, laptop computer, desktop computer, tabletor some other device. In some implementations, the display may permitthe user to provide attributes associated with the object of interest,manually select or deselect objects as objects of interest, manuallychange the playback speed of one or more of the segments, or may providesome other feedback. In response to the feedback, the video processingservice may process the video data in accordance with the request.

In some implementations, a user may select an object of interest, suchas a person, and the video processing service may monitor the movementof the object. In monitoring the movement of the object, the videoprocessing service may determine when the object of interest is inproximity to other objects and tag the segments as more complex. In theexample of a person as the object of interest, the video processingservice may monitor the person and determine when the person is in closeproximity with other objects, such as persons, landmarks, or otherobjects in the frame. When in close proximity the segment of the videodata may be flagged as complex and the playback speed may be updated toreflect the complexity of the segment. The update may be used to slowthe playback speed when the person is near one or more other objects ofinterest and speed up the playback speed when the person is not near anyof the other objects of interest.

FIG. 5 illustrates an operational scenario 500 of using user input toselect objects of interest and preferences according to animplementation. Operational scenario 500 includes video data 340 andvideo data 341.

In operation, video data 340 may be provided, at step 1, in a userinterface by a video processing service, wherein video data 340 mayrepresent security camera video, surveillance video, or some othervideo. As the video data is provided, the user may provide preferencesor feedback, at step 2, to update the video data in a format desired bythe user. The feedback may be provided via dropdown menus, check boxes,or some other feedback mechanism. The feedback mechanisms may be used toprovide attributes for the objects of interest, may be used to selectrelationships or other criteria to determine complexity in the frames,may be used to adjust the playback speed for one or more segments, ormay be used to provide some other feedback. In some implementations, theuser may manually select objects in the video data, such that theobjects can be removed or identified as an object of interest to theuser.

Once the user feedback is received, the video processing serviceupdates, at step 3, the video data based on the feedback. The update maybe used to manually select or deselect objects in the video data asobjects of interest, manually change the playback speed associated withone or more portions of the video data, implement preferences fordetermining complexities in the frames, or implement some other updateto the video data. Here, the user feedback requests the removal of anobject from video data 340 to generate video data 341. The objectselected for removal may comprise an identified object of interest ormay comprise another object in the video data. In removing the object,the video processing service may identify pixels associated with theobject in the video data and replace the pixels with pixels from framesthat preceded or succeeded the object. Replacing the object with animage of the background determined from other frames of the video data.

FIG. 6 illustrates a computing system 600 to manage video playback speedaccording to an implementation. Computing system 600 is representativeof any computing system or systems with which the various operationalarchitectures, processes, scenarios, and sequences disclosed herein foran end computing element, such as computing element 110 of FIG. 1 .Computing system 600 comprises communication interface 601, userinterface 602, and processing system 603. Processing system 603 islinked to communication interface 601 and user interface 602. Processingsystem 603 includes processing circuitry 605 and memory device 606 thatstores operating software 607. Computing system 600 may include otherwell-known components such as a battery and enclosure that are not shownfor clarity.

Communication interface 601 comprises components that communicate overcommunication links, such as network cards, ports, radio frequency (RF),processing circuitry and software, or some other communication devices.Communication interface 601 may be configured to communicate overmetallic, wireless, or optical links. Communication interface 601 may beconfigured to use Time Division Multiplex (TDM), Internet Protocol (IP),Ethernet, optical networking, wireless protocols, communicationsignaling, or some other communication format—including combinationsthereof. In some implementations, communication interface 601 may beconfigured to communicate with one or more cameras or video data storagesystems to obtain video data. Communication interface 601 may further beconfigured to one or more client computing systems to provide a userinterface for the video data and information processed from the videodata.

User interface 602 comprises components that interact with a user toreceive user inputs and to present media and/or information. Userinterface 602 may include a speaker, microphone, buttons, lights,display screen, touch screen, touch pad, scroll wheel, communicationport, or some other user input/output apparatus—including combinationsthereof. In some implementations, user interface 602 may include animage capture device to capture video data. User interface 602 may beomitted in some examples.

Processing circuitry 605 comprises microprocessor and other circuitrythat retrieves and executes operating software 607 from memory device606. Memory device 606 may include volatile and nonvolatile, removableand non-removable media implemented in any method or technology forstorage of information, such as computer readable instructions, datastructures, program modules, or other data. Memory device 606 may beimplemented as a single storage device but may also be implementedacross multiple storage devices or sub-systems. Memory device 606 maycomprise additional elements, such as a controller to read operatingsoftware 607. Examples of storage media include random access memory,read only memory, magnetic disks, optical disks, and flash memory, aswell as any combination or variation thereof, or any other type ofstorage media. In some implementations, the storage media may be anon-transitory storage media. In some instances, at least a portion ofthe storage media may be transitory. It should be understood that in nocase is the storage media a propagated signal.

Processing circuitry 605 is typically mounted on a circuit board thatmay also hold memory device 606 and portions of communication interface601 and user interface 602. Operating software 607 comprises computerprograms, firmware, or some other form of machine-readable programinstructions. Operating software 607 includes object module 608 andplayback module 609, although any number of software modules may providethe same operation. Operating software 607 may further include anoperating system, utilities, drivers, network interfaces, applications,or some other type of software. When executed by processing circuitry605, operating software 607 directs processing system 603 to operatecomputing system 600 as described herein. In at least oneimplementation, operating software 607 directs processing system 603 toprovide at least operation 200 of FIG. 2 .

In one example, object module 608 directs processing system 603 toobtain video data from a video source and identify objects of interestin the video data. The video source may comprise a camera or maycomprise a video storage device, which may include one or more storagedisks, solid state disks, or some other storage device or devices. Theobjects of interest may be identified by manual selection by a user ormay be identified using attributes associated with the objects ofinterest. The selection may be made locally using user interface 602 ormay be made using a client computing device that communicates withcomputing system 600 using communication interface 601.

In the example of manual selection, the user may be provided with afirst version of the video data with a first playback speed or speeds,and the user may select objects in the video data that are relevant tothe user. In the example of using attributes, a user may selectattributes using drop down menus, check boxes, or some other selectionmechanism. The attributes may include an object type, color, shape, orsome other attribute associated with the objects of interest. Once theattributes are defined for the objects of interest, object module 608may direct processing system 603 to identify objects in the video datathat include the relevant attributes. In some implementations, the usermay select a first object of interest and object module 608 maydetermine one or more other objects of interest based on processing thevideo data. For example, a user may select a person of interest in videodata and object module 608 may process the video data to determine oneor more other persons of interest based on the proximity of the otherpersons to the original person of interest.

As the objects of interest are identified, playback module 609 directsprocessing system to determine complexity in frames of the video datafor the objects. The complexity may be determined based on the number ofobjects of interest in the frames, the movement associated with theobjects of interest (e.g., proximity of the objects of interest to otherobjects), or some other factor. In some implementations, playback module609 may allocate scores to individual frames or sequences of frames,wherein the scores may be based on any of the aforementioned factors. Insome examples, playback module 609 may process all of the frames,however, it should be understood that the complexity may be calculatedfor a subset of the frames in the video data to preserve resourcesassociated with processing every frame.

Once the complexity is determined, playback module 609 directsprocessing system 603 to update playback speeds of the video data basedon the complexity, wherein different segments of the video data areallocated a different playback speed. In some implementations, segmentsof the video data that are identified to be more complex may beallocated a slower playback speed in relation to segments of the videodata that are identified to be less complex. For example, a segment thatincludes five objects of interest may be allocated a playback speed thatis slower than another segment that includes a single object ofinterest. Advantageously, by slowing the playback speed associated withsegments that are more complex a user may have more time to interpretthe information in the segment. Once the playback speeds are determined,the video data may be display for the user as part of a user interface.The user interface may further highlight or promote the identifiedobjects of interest in the video data, indicate the playback speed forthe different portions of the video data, or provide some otherinformation about the video data to the user.

In some implementations, when the objects of interest are identified inthe video data, one or more segments of the video data may not includeany objects of interest. As a result, these portions of the video datamay be skipped entirely when updating the playback speeds or set to an“infinite” playback speed, such that they are quickly skipped over forthe viewing user.

In some implementations, a first version of the video data may beprovided to a user and the user may make changes to the first version ofthe video data using the user interface. These changes may includemanually selecting or deselecting objects of interest, removing objectsfrom the video data, manually adjusting the playback speed of the videodata, or providing some other feedback. Based on the information fromthe user, the video data may be reprocessed to create a new version ofthe video data that reflects the preferences provided by the user. Insome examples, the feedback provided by the user may be used on othervideo data, such as preferences for playback speeds associated withdifferent complexity values, objects identified as objects of interest,or some other preference.

The included descriptions and figures depict specific implementations toteach those skilled in the art how to make and use the best option. Forthe purpose of teaching inventive principles, some conventional aspectshave been simplified or omitted. Those skilled in the art willappreciate variations from these implementations that fall within thescope of the invention. Those skilled in the art will also appreciatethat the features described above can be combined in various ways toform multiple implementations. As a result, the invention is not limitedto the specific implementations described above, but only by the claimsand their equivalents.

What is claimed is:
 1. A method comprising: obtaining video data from avideo source; identifying objects of interest in the video data, whereinthe objects of interest comprise vehicles or people; determiningcomplexity in frames of the video data for the objects of interest,wherein the complexity comprises at least a quantity of the objects ofinterest in the frames, an amount of movement by the objects of interestin the frames, and a physical proximity between at least two of theobjects of interest in the frames; and updating playback speeds of thevideo data based on the complexity, wherein different segments of thevideo data are allocated a different playback speed, and wherein one ormore frames of the frames are skipped when no objects of interest aredetected in the one or more frames.
 2. The method of claim 1, whereinthe video source comprises video storage or a video camera.
 3. Themethod of claim 1, wherein updating the playback speeds of the videodata based on the complexity comprises updating a first one or moresegments with a first complexity with a first playback speed and asecond one or more segments with a second complexity.
 4. The method ofclaim 1, wherein identifying the objects of interest in the video datacomprises: receiving a selection of one or more attributes associatedwith the objects of interest; and identifying the objects of interest inthe video data with the one or more attributes.
 5. The method of claim4, wherein the one or more attributes comprise one or more object types,one or more object colors, or one or more object shapes.
 6. The methodof claim 1 further comprising: identifying one or more objects that arenot the objects of interest to be removed from the video data; andremoving the one or more objects from the video data.
 7. A computingapparatus comprising: a storage system; a processing system operativelycoupled to the storage system; and program instructions stored on thestorage system that, when executed by the processing system, direct thecomputing apparatus to: obtain video data from a video source; identifyobjects of interest in the video data; determine complexity in frames ofthe video data for the objects of interest, wherein the complexitycomprises at least a quantity of the objects of interest in the framesand an amount of movement by the objects of interest in the frames, anda physical proximity between at least two of the objects of interest inthe frames; and update playback speeds of the video data based on thecomplexity, wherein different segments of the video data are allocated adifferent playback speed, and wherein one or more frames of the framesare skipped when no objects of interest are detected in the one or moreframes.
 8. The computing apparatus of claim 7, wherein the video sourcecomprises video storage or a video camera.
 9. The computing apparatus ofclaim 7, wherein the updating playback speeds of the video data based onthe complexity comprises updating a first one or more segments with afirst complexity with a first playback speed and a second one or moresegments with a second complexity.
 10. The computing apparatus of claim7, wherein identifying the objects of interest in the video datacomprises: receiving a selection of one or more attributes associatedwith the objects of interest; and identifying the objects of interest inthe video data with the one or more attributes.
 11. The computingapparatus of claim 10, wherein the one or more attributes comprise oneor more object types, one or more object colors, or one or more objectshapes.
 12. The computing apparatus of claim 7, wherein the programinstructions further direct the computing apparatus to: identify one ormore objects that are not the objects of interest to be removed from thevideo data; and remove the one or more objects from the video data. 13.A method comprising: obtaining video data from a video storage device;receiving a selection of one or more attributes for objects of interestin the video data; identifying the objects of interest in the videodata; determining complexity in frames of the video data for the objectsof interest, wherein the complexity is determined at least in part on aquantity of the objects of interest in the frames and an amount ofmovement of the objects of interest in the frame, and a physicalproximity between at least two of the objects of interest in the frames;and updating playback speeds of the video data based on the complexity,wherein different segments of the video data are allocated a differentplayback speed, and wherein one or more frames of the frames are skippedwhen no objects of interest are detected in the one or more frames. 14.The method of claim 13, wherein the one or more attributes comprise oneor more object types, one or more object colors, or one or more objectshapes.